from .map_base import MapBase

class XinShouCun(MapBase):
    """新手村地图"""
    def __init__(self):
        super().__init__("新手村")
        self._init_map()
        self._init_rooms()
        self.set_player_init_position("南村口")  # 设置玩家初始位置
        
    def _init_map(self):
        """初始化ASCII地图"""
        self.set_ascii_map("""
 民宅       玄坛庙
  ｜         ／
西村口－碎石路
            ＼
            碎石路      杂货店   民宅
            ／  ＼        ｜      ｜
         民房   打谷场－碎石路－碎石路－碎石路－东村口
                  ｜      ｜              ｜
                  ｜    铁匠铺           草棚
                  ｜
      小巷尽头  碎石路－前厅－内室
          ＼      ｜
          小巷－碎石路
                  ｜
                碎石路－小土房
                  ｜
                碎石路
                  ｜
                南村口
""")
        
    def _init_rooms(self):
        """初始化房间信息"""
        # 添加西村口
        self.add_room("西村口", {
            "颜色": "green",
            "描述": "这里是新手村的西边入口，一条碎石路向东延伸进村子。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "东": "碎石路1",
                "北": "民宅"
            }
        })
        self.set_room_position("西村口", 2, 2)  # 设置位置
        
        # 添加碎石路（主要路口）
        self.add_room("碎石路1", {
            "颜色": "white",
            "描述": "这是一条普通的碎石路，路面略显坑洼，但还算平整。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "西村口",
                "东": "打谷场",
                "北": "玄坛庙",
                "南": "民房"
            }
        })
        self.set_room_position("碎石路1", 4, 2)  # 设置位置
        
        # 添加打谷场
        self.add_room("打谷场", {
            "颜色": "yellow",
            "描述": "这是村里的公共打谷场，地面很平整，农忙时会有村民在这里打谷。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "碎石路1",
                "东": "碎石路2",
                "南": "碎石路4"
            }
        })
        self.set_room_position("打谷场", 6, 2)  # 设置位置
        
        # 添加碎石路2
        self.add_room("碎石路2", {
            "颜色": "white",
            "描述": "这是一条普通的碎石路，路面略显坑洼，但还算平整。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "打谷场",
                "东": "碎石路3",
                "北": "杂货店",
                "南": "铁匠铺"
            }
        })
        self.set_room_position("碎石路2", 8, 2)  # 设置位置
        
        # 添加碎石路3
        self.add_room("碎石路3", {
            "颜色": "white",
            "描述": "这是一条普通的碎石路，路面略显坑洼，但还算平整。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "碎石路2",
                "东": "东村口",
                "南": "草棚"
            }
        })
        self.set_room_position("碎石路3", 10, 2)  # 设置位置
        
        # 添加碎石路4
        self.add_room("碎石路4", {
            "颜色": "white",
            "描述": "这是一条普通的碎石路，路面略显坑洼，但还算平整。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "打谷场",
                "南": "碎石路5",
                "东": "前厅",
                "西": "小巷"
            }
        })
        self.set_room_position("碎石路4", 6, 4)  # 设置位置
        
        # 添加碎石路5
        self.add_room("碎石路5", {
            "颜色": "white",
            "描述": "这是一条普通的碎石路，路面略显坑洼，但还算平整。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路4",
                "南": "南村口"
            }
        })
        self.set_room_position("碎石路5", 6, 6)  # 设置位置
        
        # 添加南村口
        self.add_room("南村口", {
            "颜色": "green",
            "描述": "这里是新手村的南边出口，一条小路通向远方。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路5"
            }
        })
        self.set_room_position("南村口", 6, 8)  # 设置位置
        
        # 添加玄坛庙
        self.add_room("玄坛庙", {
            "颜色": "yellow",
            "描述": "这是一座历史悠久的道观，香火鼎盛，是村民祈福的场所。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "道士",
            "exits": {
                "南": "碎石路1"
            }
        })
        self.set_room_position("玄坛庙", 2, 0)  # 设置位置
        
        # 添加民宅（西村口北边）
        self.add_room("民宅", {
            "颜色": "white",
            "描述": "这是一间普通的农家小院，院子里种着一些蔬菜。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "南": "西村口"
            }
        })
        self.set_room_position("民宅", 0, 1)  # 设置位置
        
        # 添加民房
        self.add_room("民房", {
            "颜色": "white",
            "描述": "一间朴素的农家小屋，屋前晒着些农作物。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路1"
            }
        })
        self.set_room_position("民房", 2, 3)  # 设置位置
        
        # 添加杂货店
        self.add_room("杂货店", {
            "颜色": "cyan",
            "描述": "一间经营日常用品的小店，店主是个和蔼的老人。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "杂货店老板",
            "exits": {
                "南": "碎石路2"
            }
        })
        self.set_room_position("杂货店", 6, 1)  # 设置位置
        
        # 添加铁匠铺
        self.add_room("铁匠铺", {
            "颜色": "red",
            "描述": "铁匠铺里热气腾腾，铁匠正在打造农具。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "铁匠",
            "exits": {
                "北": "碎石路2"
            }
        })
        self.set_room_position("铁匠铺", 6, 3)  # 设置位置
        
        # 添加前厅
        self.add_room("前厅", {
            "颜色": "yellow",
            "描述": "这是一间宽敞的大厅，是村长处理村务的地方。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "村长",
            "exits": {
                "西": "碎石路1",
                "东": "内室"
            }
        })
        self.set_room_position("前厅", 4, 4)  # 设置位置
        
        # 添加内室
        self.add_room("内室", {
            "颜色": "blue",
            "描述": "村长的私人房间，摆设简单但整洁。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "前厅"
            }
        })
        self.set_room_position("内室", 6, 4)  # 设置位置
        
        # 添加小巷
        self.add_room("小巷", {
            "颜色": "white",
            "描述": "一条僻静的小巷，两旁是高高的院墙。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "东": "碎石路3",
                "西": "小巷尽头"
            }
        })
        self.set_room_position("小巷", 2, 5)  # 设置位置
        
        # 添加小巷尽头
        self.add_room("小巷尽头", {
            "颜色": "white",
            "描述": "小巷的尽头，这里很少有人来，地上堆着一些杂物。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "东": "小巷"
            }
        })
        self.set_room_position("小巷尽头", 0, 5)  # 设置位置
        
        # 添加小土房
        self.add_room("小土房", {
            "颜色": "white",
            "描述": "一间用土坯砌成的小房子，看起来有些年头了。",
            "环境": "室内",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "碎石路4"
            }
        })
        self.set_room_position("小土房", 4, 6)  # 设置位置
        
        # 添加草棚
        self.add_room("草棚", {
            "颜色": "green",
            "描述": "一个用茅草搭建的简易棚子，可以遮风挡雨。",
            "环境": "半室外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路2"
            }
        })
        self.set_room_position("草棚", 8, 3)  # 设置位置
        
        # 添加东村口
        self.add_room("东村口", {
            "颜色": "green",
            "描述": "这里是新手村的东边出口，通向外面的世界。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "西": "碎石路3"
            }
        })
        self.set_room_position("东村口", 10, 2)  # 设置位置
        
        # 添加南村口
        self.add_room("南村口", {
            "颜色": "green",
            "描述": "这里是新手村的南边出口，一条小路通向远方。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路5"
            }
        })
        self.set_room_position("南村口", 4, 7)  # 修改坐标
        
        # 添加南村口
        self.add_room("南村口", {
            "颜色": "green",
            "描述": "这里是新手村的南边出口，一条小路通向远方。",
            "环境": "户外",
            "物品": "",
            "是否可见": True,
            "是否可去": True,
            "命令": "",
            "事件": "",
            "npc": "",
            "exits": {
                "北": "碎石路5"
            }
        })
        self.set_room_position("南村口", 4, 7)  # 修改坐标 